#include <iostream>
#include <queue>
#include <map>
#include <unordered_map>
#include <vector>
#include <algorithm>
#include <cmath>
#include <string>
#include <cstring>
#include <set>
#include <unordered_set>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef pair<int,int> PII;
const int INF=0x3f3f3f3f;
const int P=131,N=1e6+10;
string a,b;
ull h[N],p[N];

ull query(int l,int r)
{
	return h[r]-h[l-1]*p[r-l+1];
}
int main()
{
	cin>>a>>b;
	ull num=0;
	p[0]=1;
	int ans=0;
	for(int i=0;i<b.size();i++)
	{
		num=num*P+b[i];
	}
	for(int i=0;i<a.size();i++)
	{
		h[i+1]=h[i]*P+a[i];
		p[i+1]=p[i]*P;
	}
	for(int i=1;i+b.size()-1<=a.size();i++)
	{
		if(num==query(i,i+b.size()-1)) ans++;
	}
	cout<<ans;
	return 0;
}
